package basicSet;

import java.util.Scanner;

public class Main_huiwenshu {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		long start = System.nanoTime();
		
		int amout = 0; //看一下回文数到底多不多
		OUT: for(int i = 10000;i < 999999; i++) {
			
			//对时间要求严格的条件下，拼凑接口是不行的。。除非接口本身就是面向问题的，而不是功能冗余的：对问题而言时间浪费严重；
//			if(new StringBuilder(i+"").reverse().toString().equals(String.valueOf(i)))               
//			if( Integer.valueOf( new StringBuilder(i+"").reverse().toString() ) == i )
//			{
//				char[] ci =  String.valueOf(i).toCharArray(); 
//				int sum = 0;
//				for (char c : ci) {
//					sum += Integer.parseInt(String.valueOf(c));
//				}
//				
//				if(sum == n)
//					System.out.println(i);
//			}		
			
			String s = String.valueOf(i);
			
			for(int k = 0; k < s.length()/2; k++) {            //isHuiwenshu()   恰好整除时，中间那一个数是不需要进行判断的。即两种情况都只需要碰撞指针各走 length/2 的长度即可
				if( s.charAt(k) != String.valueOf(i).charAt(s.length()-k-1))
					continue OUT;
			}
			amout++; //能过来的都是回文数；
			
			System.out.print(i + ",");
			
			int sum = 0;
			for(int k = 0; k < s.length(); k++) {			//满足条件与否
				sum += Integer.valueOf(String.valueOf(s.charAt(k))); //不能直接相加char类型：+'1'是加的字符值而不是1；
			}
			
			System.out.println(sum);  //各位和
			
			if(sum == n)
				System.out.println(i);
		
		}
		
		long end = System.nanoTime();
		
		System.out.println("99w个连续数据里的回文数个数："+amout);  //回文数字是不多的，过滤后数据规模大概缩小了1000倍；也就是说 如果当做第一层的过滤条件是可以过滤很多数据的；
		
		System.out.println("time: "+ (end-start)/1000000000.0 );
		
		
	}
}
